草庐IT

ES 脚本

全部标签

javascript - 在使用 window.open 打开的窗口中使用 document.write 编写的脚本元素不会在 Windows 7 的 IE8 中执行

我遇到了一个似乎只出现在Windows7上的问题。它似乎在不同版本的Windows上的IE8中运行良好。基本上,我使用window.open()创建一个新窗口,然后使用document.write()写入该新窗口的内容,其中包含脚本包含。在IE中,这些脚本未正确执行。大多数时候他们根本不执行,但偶尔会有一个执行。这仅适用于清除缓存-一旦javascript文件在缓存中,它就可以正常工作。归结测试用例:测试.html:varw=window.open();varwindowHTML="\\n\\n\\n\\n\\n\\n\\n\\n\";w.document.write(windowHT

javascript - 在浏览器中禁用 JS 时,setTimeout 在 Greasemonkey 用户脚本中不起作用

我正在从事一个项目,该项目要求我的用户脚本在呈现页面时在页面上运行,而不执行页面的任何JavaScript。也就是说,我们需要在禁用JavaScript的情况下进行浏览。当我尝试延迟脚本中函数的执行时,我遇到了一个问题。每当我调用window.setTimeout时,我传入的函数永远不会执行。我想也许这个函数实际上是在unsafeWindow而不是窗口上被调用的。有什么解决方法吗?我应该提到,当启用JavaScript时,对setTimeout的调用工作正常,并且我的脚本中的所有其他内容在不启用JavaScript的情况下工作正常。感谢您的帮助! 最佳答案

javascript - 旧版浏览器的 ECMAScript 5 兼容性脚本

是否已经有一个开源项目可以为本身没有实现它的浏览器实现ECMAScript5特性?类似IE7.js的东西实现InternetExplorer中缺少的标准内容的项目。我想使用新的Function.bind()和String.trim()以及JSON.parse()函数,但它们目前仅在最新的浏览器(如最新的Chromium)中可用。我想简单地包含一个像“ecma5.js”这样的脚本,如果浏览器中缺少它,它会实现所有这些东西。那么是否已经有这样的项目可用?如果没有,那么我必须自己做。 最佳答案 es5-shim应该给你你想要的(或者,尽可

javascript - 动态加载内容脚本(chrome 扩展)

我有一个chrome扩展程序,其中包含2个由list注入(inject)的内容脚本和一个后台脚本。{"manifest_version":2,"name":"Test","permissions":["tabs","","activeTab","storage"],"content_scripts":[{"matches":["http://*/*","https://*/*"],"js":["content/autofill/lib_generic.js","content/autofill/lib.js"],"run_at":"document_end"}],"web_access

javascript - 基于java脚本中嵌套对象数组中的键对列表进行排序的最佳方法

我有以下内容:varlist=[{"item":[{a:5,a1:6,a2:7},{b:3,b1:4,b2:2}]},{"item":[{a:1,a1:2,a2:3},{b:4,b1:5,b2:6}]},{"item":[{a:2,a1:7,a2:4},{b:3,b1:7,b2:1}]}];假设我有上面的变量list,我怎样才能对它进行排序,使得list中具有item键的所有直接对象>根据键(即"a1"或"b")按升序排序。请注意,它不会更改或重新排序list[x]["item"]中的列表,而只会更改list[x]中的直接项目。标准排序函数似乎只对数组中对象内的键进行排序,但我想根据位

javascript - Google Chrome - 使用 iframe 时屏幕捕获失败,相同的脚本在没有 iframe 的情况下工作

当我使用以下脚本时,它适用于普通浏览器。但是当使用iframe时,它​​会向我显示此错误:有谁知道造成这种情况的原因并且可以解决吗?错误:channelmessageObject{type:"getScreenPending",id:24504,request:6}content.js:4channelmessageObject{type:"gotScreen",id:24504,request:6}content.js:4>>>ShareScreen:ifanyerrNavigatorUserMediaError{constraintName:"",message:"",name:"

javascript - 将现有的 AMD 模块导入 ES6 模块

我有一个现有的应用程序,其中我使用RequireJS定义了AMD模块。我在我的项目中广泛使用requirejs的“text”和“i18n”插件。我最近一直在试验ES6模块,并希望在我的应用程序中创建新模块时使用它们。但是,我想重用现有的AMD模块并在定义我的ES6模块时导入它们。这可能吗?我知道Traceur和Babel可以从ES6模块创建AMD模块,但这只适用于不依赖于现有AMD模块的新模块,但我找不到重用现有AMD模块的示例。任何帮助将不胜感激。这是我现在开始使用所有ES6好东西的障碍。谢谢 最佳答案 是的,这是可以做到的。创建

javascript - JS & ES6 : Access static fields from within class

在ES6中,给出以下示例:exportdefaultclassMyStyleextendsStylesheet{staticColor={mainDark:'#000'}staticComp={...color:Color.mainDark}}如何访问Color.mainDark(静态字段)? 最佳答案 您可以按预期访问它,但是如果我记得在使用Babel并立即导出类时存在一些问题,那么在定义类之后导出如果您遇到问题:classMyStyleextendsStylesheet{staticColor={mainDark:'#000'}

javascript - 带有模板文字但没有括号的 ES6 调用函数

这个问题在这里已经有了答案:Backticks(`…`)callingafunctioninJavaScript(3个答案)关闭6年前。根据MDN,Taggedtemplateliterals可以按如下方式使用:vara=5;varb=10;functiontag(strings,...values){alert(strings[0]);//"Hello"alert(strings[1]);//"world"alert(values[0]);//15alert(values[1]);//50return"Bazinga!";}tag`Hello${a+b}world${a*b}`;//

ES6 中的 Javascript `eval()` 作用域

我正在一个名为test的Foo1实例上动态创建一个函数。我正在使用eval创建此函数。我希望此函数可以访问Foo2类,但是我收到了ReferenceError:Foo2isnotdefined。我已经用Babel提出了一个关于这个的问题并且可以找到here如果您想自己运行示例代码,请从here下载它并按照README.MD中的说明进行重现。运行:npminstallnpmrunstartnaviagetolocalhost:8080HereisthedirectorystructureformyMinimal,Complete,andVerifiableexampleinmyenvir